home *** CD-ROM | disk | FTP | other *** search
Text File | 1979-12-31 | 4.3 KB | 150 lines | [TEXT/ttxt] |
-
- c*+*+*+*+*+*
- c This program was produced by the ATOMCC translator version 7.10
- c Copyright (C) 1985, Y. F. Chang
- c*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+
- c Portions (c) Copyright, Microsoft Corp., 1981. All rights reserved.
- c This program was written for the following inputs
- c
- C FIRST PAINLEVE TRANSCENDENT
- C DIFF(Y,T,2) = 6.0*Y*Y + T
- c--------
- c no instructions in second input block
- c--------
- COMMON /IPASS/ LENSER,LENVAR,MPRINT,MSTIFF,LRUN,
- + KTRDCV,KNTSTP,KTSTIF,KXPNUM,KDIGS,KENDFG,NTERMS,NOPT
- A /RPASS/ RADIUS,ERRLIM,ADJSTF,RCREAL,RCIMAG,RDCERR
- B /CPASS/ START,END,ORDER
- C /DPASS/ H,HNEW,XPRINT,DLTXPT
- DIMENSION TMPS( 36, 1)
- CHARACTER*6 NAMES
- EQUIVALENCE (TMPS(1,1),Y(1))
- DIMENSION NAMES(1), Y(36), T(2), TMPAAB(30), TMPAAA(30)
- DATA NAMES(1)/'Y.....'/
- Y(33) = 1.1
- 10 FORMAT(72H ATOMCC Ver. 7.10, Copyright (C) 1985, Y. F. Chang; S
- Aolution results./9H ******)
- 11 FORMAT(/5X,11HStep number,I6,13H at the point,1P1E12.4/1X,
- A 9Hvalues of )
- 12 FORMAT(1X, A6,(1X,1P4E13. 5))
- 13 FORMAT(5X,21HStepsize adjusted to ,1PE13.5)
- 14 FORMAT(/5X,35HThe solution stopped normally after, I4,24H steps as
- a set by nsteps. )
- 16 FORMAT(/5X,63HThe adjustment for stepsize seems to be in a loop. P
- Alease try a /5X,22Hshorter series length. )
- WRITE(*,10)
- c--------
- c Initialize variables to default values.
- c--------
- NSTEPS = 40
- H = 1.E0
- ERRLIM = 1.E- 6
- LENSER = 30
- MPRINT = 4
- NTERMS = 2
- KTRDCV = 1
- ADJSTF = 1.E-2
- MSTIFF = 0
- DLTXPT = 0.E0
- c--------
- c start of third input block
- c--------
- C READ INTEGRATION INTERVAL AND INITIAL CONDITIONS.
- READ(5,1010) START,END,Y(1),Y(2)
- 1010 FORMAT(4F10.3)
- WRITE(*,1020) START,END,Y(1),Y(2)
- 1020 FORMAT(' SOLVE THE FIRST PAINLEVE TRANSCENDENT' /
- + ' INTERVAL: ',2F10.3 /
- + ' INITIAL CONDITIONS:',2F10.3 /)
- c--------
- c end of third input block
- c--------
- c More initializations
- c--------
- DLTXPT = SIGN(DLTXPT,(END-START))
- H = SIGN(H,(END-START))
- KDIGS = 6
- XPRINT = START + DLTXPT
- KXPNUM = 35
- LENVAR = 36
- LRUN = 1
- KTSTIF = 0
- NUMEQS = 1
- IF(LENSER.GT.(LENVAR- 6)) LENSER = LENVAR - 6
- IF(MPRINT.LT.2) GO TO 17
- WRITE(*,11) KTSTIF,START
- K = Y(33)
- WRITE(*,12) NAMES(K),Y(1), Y(2)
- c--------
- c Loop for integration steps. Inside the loop, print the desired output
- c--------
- 17 DO 27 KINTS=1,NSTEPS
- KOUNT = 0
- KNTSTP = KINTS
- 19 CONTINUE
- T(1) = START
- T(2) = H
- Y(2) = Y(2)*(H)
- c--------
- c Preliminary series calculations
- c--------
- TMPAAA(1) = 6.E0*Y(1)
- TMPAAB(1) = TMPAAA(1)*Y(1)
- Y(3) = (TMPAAB(1) + T(1))*(H*H/2.E0)
- TMPAAA(2) = 6.E0*Y(2)
- TMPAAB(2) = TMPAAA(1)*Y(2) + TMPAAA(2)*Y(1)
- Y(4) = (TMPAAB(2) + T(2))*(H*H/6.E0)
- c--------
- c Loop for series calculations
- c--------
- DO 23 K= 5,LENSER
- KA = K - 1
- KB = K - 2
- TMPAAA(KB) = 6.E0*Y(KB)
- TMPAAB(KB) = 0.E0
- KZ = 1 + KB
- DO 30 N=1, KB
- L = KZ - N
- TMPAAB(KB) = TMPAAB(KB) + TMPAAA(N)*Y(L)
- 30 CONTINUE
- Y(K) = (TMPAAB(KB))*(H*H/(KB*KA))
- c--------
- c Test and adjust H to avoid over/under flow.
- c--------
- IF(MSTIFF.GE.20 .AND. KTSTIF.GT.0) GO TO 23
- TMP = ABS(Y(K))
- IF(TMP.LE.1.E-35) GO TO 23
- IF(TMP.LT.1.E20 .AND. TMP.GT.1.E-20) GO TO 23
- IF(KTSTIF.NE.0 .AND. TMP.LT.1.0) GO TO 23
- KOUNT = KOUNT + 1
- IF(KOUNT.LT.9) GO TO 22
- WRITE(*,16)
- GO TO 28
- 22 CONTINUE
- Y(2) = Y(2)/(H)
- H = H * TMP**(0.3/(1-K))
- IF(MPRINT.GE.4) WRITE(*,13) H
- GO TO 19
- 23 LRUN = 1
- c--------
- c Calculate radius of convergence and take optimum step.
- c--------
- CALL RDCV(TMPS,LENVAR,NUMEQS,NAMES)
- 24 CALL RSET(TMPS,LENVAR,NUMEQS,NAMES)
- c--------
- c no instructions in fourth input block
- c--------
- 25 GO TO (26,28,24), KENDFG
- 26 H = SIGN(RADIUS,H)
- START = START + HNEW
- IF(MPRINT.LT.4) GO TO 27
- WRITE(*,11) KNTSTP, START
- K = Y(33)
- WRITE(*,12) NAMES(K),Y(1), Y(2)
- 27 CONTINUE
- WRITE(*,14) NSTEPS
- 28 CONTINUE
- 29 STOP
- END
- K = Y(33)
- WRITE(*,12) NAMES(K),Y(1),